// Takes an object, a list of real-valued positions, and
// speeds, and modifies the pose of the object to follow
// the path every time update() is called.
//
// Nick Kitten
// 2009

#pragma once

#include "Utilities.h"
#include <list>
#include <vector>

using namespace std;

class PathTraverser
{
public:
	PathTraverser();
	PathTraverser( const list<Triple> * path, float walkSpeed = .05, float turnSpeed = .09 );
	Pose update();
	void setPath( const list<Triple> * path, Triple currRot );
	void setWalkSpeed( float newSpeed );
	void setTurnSpeed( float newSpeed );

private:
	const list<Triple> * path;
	float walkSpeed, turnSpeed;
	int startTime, now;
	vector<Pose> poses;
	vector<int> poseTimes;
};
